<?php
/**
 * Created by PhpStorm.
 * User: bill
 * Date: 2014/12/2
 * Time: 9:56
 */

class C商户 extends C用户
{

    public function __construct(C信息中心 $vo中心){
        parent::__construct($vo中心);

    }
    //根据父类构造子类
    public static function initByParent(C用户 $vo用户){
       $instance = new C商户($vo用户->vo信息中心);
       $instance->initByInstance($vo用户);
        return $instance;
    }

    public function fc通过code取得用户id($code) {
        $pdo = pdo();
        $二维码信息 = $pdo->selectColumns('qrcode',array('user_id'),array('code'=>$code));
        return $二维码信息['user_id'];
    }


    public function get病历评论($病历id,$当前页,$参数){
        $sql = "select a.*,b.`name`,b.`头像` from `评论` a LEFT JOIN `用户`  b ON(a.`用户id`= b.id) WHERE 病历id=$病历id  order by id ";
        return pdo()->page($sql,$当前页,5,$参数);
    }

    public function get病历文章评论($病历文章id,$当前页,$参数){
            $sql = "select a.*,b.`name`,b.`头像`  from `病历文章评论` a LEFT JOIN `用户`  b ON(a.`用户id`= b.id) WHERE 文章id=$病历文章id AND  `表名`='病历文章' order by id ";
            $arr = array();
            $arr = pdo()->page($sql,$当前页,5,$参数);
            foreach($arr['result'] as $key=>$value){
                if($value['pid'] == 0){continue;}
                $sqlitem = "select a.*,b.`name`,b.`头像` from `病历文章评论` a LEFT JOIN `用户`  b ON(a.`用户id`= b.id) WHERE a.id=".$value['pid'];
                $arritem = pdo()->selectOne($sqlitem);
                $arr['result'][$key]['p头像'] = $arritem['头像'];
                $arr['result'][$key]['p用户id'] = $arritem['用户id'];
                $arr['result'][$key]['p说明'] = $arritem['说明'];
                $arr['result'][$key]['p表名'] = $arritem['表名'];
                $arr['result'][$key]['p头像'] = $arritem['头像'];
                $arr['result'][$key]['pname'] = $arritem['name'];
            }
            return $arr;
    }

    private function fj检查店长身份($下级openId) {
        $pdo = pdo();
        $员工身份 = $pdo -> selectColumns('用户',array('*'),array('openID'=>$下级openId,'店员工'=>2));
        if($员工身份) return false;//店长不能绑定成为员工
        return true;
    }



    private function fj检查员工身份($下级openId) {
        $pdo = pdo();
        $店长身份 = $pdo -> selectColumns('用户',array('*'),array('openID'=>$下级openId,'认证'=>2));
        if($店长身份) return false;//店长不能绑定成为员工
        return true;
    }


    private function fc检查用户店长身份(Do用户 $vo用户,$openId) {
        $pdo = pdo();
        $店长信息 = $pdo -> selectBO($vo用户,array('openId'=>$openId,'认证'=>2));

        if($店长信息) {
            return $店长信息->data['id'];
        }else {
            return false;
        }
    }


    private function fs上传图片($file,$地址,$名称){
        $arrType=array('image/jpg','image/gif','image/jpeg','image/png','image/bmp','image/pjpeg');
        $max_size='30000000';      // 最大文件限制（单位：byte）
        $upfile='../cache/card_img'; //图片目录路径
        $是否存在=0;
        if(!is_uploaded_file($file['tmp_name'])){ //判断上传文件是否存在
            return "文件不存在！";
        }

        if($file['size']>$max_size){  //判断文件大小是否大于500000字节
            return "上传文件太大！";
        }
        if(!in_array($file['type'],$arrType)){  //判断图片文件的格式
            return "上传文件格式不对！";
        }
        if(!file_exists($地址)){  // 判断存放文件目录是否存在
            mkdir($地址,0777,true);
        }
        $imageSize=getimagesize($file['tmp_name']);
        $img=$imageSize[0].'*'.$imageSize[1];
        // $fname=$file['name'];
        $ftype=explode('.',$file['name']);
        $fname=$名称.".".$ftype[1];
        $picName=$地址."/".$fname;

       if(file_exists($picName)){
        $是否存在=1;
       }
        if(!move_uploaded_file($file['tmp_name'],$picName)){
            return "上传图片失败,请稍后再试！";
        }
        else{
/*
            if($是否存在){
                return "图片文件上传成功!";
            }else */
            return $fname;


        }
    }


    public function fg关注病历($状态,$病历id,$关注id,$用户id){
        $do = new Do关注病历();
        if($关注id) $do->set_id($关注id);
        $do->set_病历id($病历id);
        $do->set_用户id($用户id);
        $do->set_状态($状态);
        if(!$关注id) $do->set_时间(date("y-m-t H:i:s"));
        $关注 = $do->save();
        return $关注;

    }

    public function fg修改报名语音课程($状态,$课程id,$关注id,$用户id,$课程人数限制) {
        if (!$状态 or !$课程id or !$用户id) {
            logger()->logInfo(sprintf("fg修改报名语音课程失败: 状态:%s  课程id:%s  关注id:%s  用户id:%s  课程人数限制:%s", $状态,$课程id,$关注id,$用户id,$课程人数限制));
            return 0;
        }

        $do = new Do语音课程报名();
        if($状态=='报名' && $this->fp课程报名是否已满($课程id,$课程人数限制)) {
            return '2';//报名人数已满
        }

        $do->set_课程id($课程id);
        $do->set_用户id($用户id);
        $do->where($do->data)->row();

        $do->set_状态($状态);
        $do->set_时间(date("y-m-t H:i:s"));
        $关注 = $do->save();
        return $关注;
    }

    public function fp课程报名是否已满($课程id,$课程人数限制){
        $语音课程报名人数 =pdo()->selectOne("SELECT COUNT('id') as num FROM `语音课程报名` WHERE `课程id` ='".$课程id."' and `状态`='报名';");
        Logger::getInstance()->logInfo("SELECT COUNT('id') FROM `语音课程报名` WHERE `课程id` ='".$课程id."' and `状态`='报名';");
        Logger::getInstance()->logInfo("fp课程报名是否已满");
        Logger::getInstance()->logInfo($课程人数限制);
        if($语音课程报名人数['num']>$课程人数限制 ){
            return true;
        }
        return false;
    }
    public function fg修改课程状态($状态,$课程id){
        $do = new Do语音课程();
        if($课程id) $do->set_id($课程id);
        $do->set_状态($状态);
        $修改 = $do->save();
        return $修改;

    }

    public function fc出院操作($病历id){
        pdo()->beginTransaction();
        $修改床位 = pdo()->update("床位",array('病历id'=>''),array('病历id'=>$病历id));
        $修改病历 = pdo()->update('病历',array('出院时间'=>date('y-m-t H:i:s')),array('id'=>$病历id));
        if($修改床位 || $修改病历){
            pdo()->commit();
            return true;

        }else{
            pdo()->rollBack();
            return false;
        }

    }

} 